/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.tags;

import java.io.IOException;
import java.util.Calendar;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import org.asportoonline.entities.Prenotazione;
import org.asportoonline.entities.ProdottoPrenotato;

/**
 *
 * @author fe
 */
public class ElencoPrenotazioniLocaleTag extends SimpleTagSupport {
    private List<Prenotazione> lista_prenotazioni;

    public List<Prenotazione> getLista_prenotazioni() {
        return lista_prenotazioni;
    }

    public void setLista_prenotazioni(List<Prenotazione> lista_prenotazioni) {
        this.lista_prenotazioni = lista_prenotazioni;
    }
    
    @Override
    public void doTag() throws JspException {
        JspWriter out = getJspContext().getOut();
        
        List<Prenotazione> prenotazioni = getLista_prenotazioni();
        Prenotazione pren;
        String data_consegna;
        Calendar cal;
        List<ProdottoPrenotato> prodotti;
        ProdottoPrenotato prodotto;
        
        try {
            
            if(prenotazioni==null || prenotazioni.isEmpty()) {
                out.print("<p>Nessuna prenotazione ancora effettuata!!!</p>");
            }
            else {
                
                out.print("<table>");

                out.print("<tr>"
                        + "<th>Cliente</th>"
                        + "<th>Descriozione</th>"
                        + "<th>Data consegna</th>"
                        + "<th>Orario consegna</th>"
                        + "<th>Prodotti</th>"
                        + "<th>Quantit&agrave;</th>"
                        + "</tr>");
                
                for(int i=0; i<prenotazioni.size(); i++) {
                    pren = prenotazioni.get(i);
                    cal = pren.getDataPrenotazione();
                    data_consegna = cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR);
                    
                    out.print("<tr>");
                    
                    
                    out.print("<td>" + pren.getCliente().getEmail() + "</td>"
                            + "<td>" + pren.getDescrizione() + "</td>"
                            + "<td>" + data_consegna + "</td>"
                            + "<td>" + pren.getOrarioPrenotazione() + "</td>");
                    
                    
                    prodotti = pren.getProdpren();
                    for(int j=0; j<prodotti.size(); j++) {
                        prodotto = prodotti.get(j);
                        
                        if(j == 0) {                            
                            out.print("<td>" + prodotto.getProd().getNome() + "</td>"
                                    + "<td>" + prodotto.getQuantita() + "</td>"
                                    + "</tr>");
                        }
                        else {
                            out.print("<tr>");
                            out.print("<td></td><td></td><td></td><td></td>"
                                    + "<td>" + prodotto.getProd().getNome() + "</td>"
                                    + "<td>" + prodotto.getQuantita() + "</td>"
                                    + "</tr>");
                        }                        
                    }
                }
                
                out.print("</table>");

            }
                        
        } catch(IOException ex) {
            throw new JspException("Errore in ElencoPrenotazioniLocaleTag tag.");
        }
    
    }
}